package com.taplinker.client.im.util;

import java.util.ArrayList;
import java.util.List;

import com.taplinker.client.im.protocol.TapLinkerMessage;

public class DoubleList{
	
	private List<TapLinkerMessage> items = new ArrayList<TapLinkerMessage>();
	public List<TapLinkerMessage> getItems() {
		return items;
	}
	
	public boolean add(TapLinkerMessage item) {
		if (!contains(item)) {
			items.add(item);
			return true;
		} else {
			return false;
		}

	}
	
	public boolean add(int insertIndex, TapLinkerMessage item) {
		items.add(insertIndex, item);
		return true;
	}
	
	public int addAllIgnoreExist(List<TapLinkerMessage> addItems) {
		int actualAddCount = 0;
		for (TapLinkerMessage item : addItems) {
			items.add(item);
		}
		return actualAddCount;
	}
	
	
	public TapLinkerMessage getItemByIndex(int index) {
		return items.get(index);
	}
	
	public boolean remove(TapLinkerMessage item) {
		if (items.remove(item)) {
			return true;
		}
		return false;
	}
	
	public void clear(){
		items.clear();
	}
	
	public int size(){
		return items.size();
	}
	
	public boolean contains(TapLinkerMessage item) {
		for(TapLinkerMessage msg : items) {
			if(msg.getId().equals(item.getId())) {
				return true;
			}
		}
		return false;
	}
}
